// 对Vue全局指令进行封装
// 封装中间件函数插件
const directiveObj = {
  // 当执行Vue.use()时 会执行install函数体
  install(Vue) {
    Vue.directive('fofo', {
      // 当绑定元素插入到DOM中时触发inserted函数
      inserted(el) {
        // DOM.nodeName 获取标签名(都是大写的)
        if (el.nodeName === 'TEXTAREA' || el.nodeName === 'INPUT') { // 直接是原生标签的
          el.focus()
        } else { // 不是原生标签的需要往里面获取input/textarea
          const input = el.querySelector('input')
          const textarea = el.querySelector('textarea')
          // 不确定获取的是哪个 所以加一个判断 防止报错
          if (input) { input.focus() }
          if (textarea) { textarea.focus() }
        }
      },
      update(el) { // 指令所在标签被更新是=时执行
        // DOM.nodeName 获取标签名(都是大写的)
        if (el.nodeName === 'TEXTAREA' || el.nodeName === 'INPUT') { // 直接是原生标签的
          el.focus()
        } else { // 不是原生标签的需要往里面获取input/textarea
          const input = el.querySelector('input')
          const textarea = el.querySelector('textarea')
          // 不确定获取的是哪个 所以加一个判断 防止报错
          if (input) { input.focus() }
          if (textarea) { textarea.focus() }
        }
      }
    })
  }
}
export default directiveObj
